package entity

import (
	"encoding/json"
	"fmt"
	"io/ioutil"
)

type FileType int

const (
	FileTypeFile FileType = iota
	FileTypeDir
)

type FileState int

const (
	FileStateHidden FileState = iota
	FileStateVisible
	FileStateNotExist
)

const (
	FileColorFile string = "#8FBC8F"
	FileColorDir  string = "#000000"
)

type FileInfo struct {
	Type  FileType
	State FileState
	Name  string `json:"name"`
	Path  string `json:"path"`
}

func NewFileInfo(path string) *[]FileInfo {
	fileInfo := &[]FileInfo{}

	// 读取 JSON 文件
	data, err := ioutil.ReadFile(path)
	if err != nil {
		fmt.Println("读取文件失败:", err)
		return nil
	}

	// 解析 JSON 数组到 Person 切片
	err = json.Unmarshal(data, &fileInfo)
	if err != nil {
		fmt.Println("解析 JSON 失败:", err)
		return nil
	}

	// 遍历并输出解析结果
	for _, file := range *fileInfo {
		fmt.Println("Name:", file.Name)
		fmt.Println("Path:", file.Path)
		fmt.Println("Type:", file.Type)
		fmt.Println() // 输出一个空行，以便区分不同的 Person 对象
	}
	return fileInfo
}
